package com.ruoyi.domain.production;

import java.math.BigDecimal;
import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 生产退料单明细对象 mes_production_return_detail
 * 
 * @author ruoyi
 * @date 2024-01-01
 */
public class MesProductionReturnDetail extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 明细ID */
    private Long detailId;

    /** 退料单ID */
    @Excel(name = "退料单ID")
    private Long returnId;

    /** 原领料明细ID */
    @Excel(name = "原领料明细ID")
    private Long pickingDetailId;

    /** 物料ID */
    @Excel(name = "物料ID")
    private Long materialId;

    /** 物料编码 */
    @Excel(name = "物料编码")
    private String materialCode;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specification;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 原领料数量 */
    @Excel(name = "原领料数量")
    private BigDecimal pickedQuantity;

    /** 退料数量 */
    @Excel(name = "退料数量")
    private BigDecimal returnQuantity;

    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 总价 */
    @Excel(name = "总价")
    private BigDecimal totalPrice;

    /** 批次号 */
    @Excel(name = "批次号")
    private String batchCode;

    /** 仓库位置 */
    @Excel(name = "仓库位置")
    private String warehouseLocation;

    /** 实际退料时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际退料时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date returnTime;

    /** 退料原因 */
    @Excel(name = "退料原因")
    private String returnReason;

    /** 质量状态 (合格, 不合格, 待检) */
    @Excel(name = "质量状态")
    private String qualityStatus;

    /** 明细状态 (待退料, 已退料) */
    @Excel(name = "明细状态")
    private String status;

    public void setDetailId(Long detailId) 
    {
        this.detailId = detailId;
    }

    public Long getDetailId() 
    {
        return detailId;
    }
    public void setReturnId(Long returnId) 
    {
        this.returnId = returnId;
    }

    public Long getReturnId() 
    {
        return returnId;
    }
    public void setPickingDetailId(Long pickingDetailId) 
    {
        this.pickingDetailId = pickingDetailId;
    }

    public Long getPickingDetailId() 
    {
        return pickingDetailId;
    }
    public void setMaterialId(Long materialId) 
    {
        this.materialId = materialId;
    }

    public Long getMaterialId() 
    {
        return materialId;
    }
    public void setMaterialCode(String materialCode) 
    {
        this.materialCode = materialCode;
    }

    public String getMaterialCode() 
    {
        return materialCode;
    }
    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }
    public void setSpecification(String specification) 
    {
        this.specification = specification;
    }

    public String getSpecification() 
    {
        return specification;
    }
    public void setUnit(String unit) 
    {
        this.unit = unit;
    }

    public String getUnit() 
    {
        return unit;
    }
    public void setPickedQuantity(BigDecimal pickedQuantity) 
    {
        this.pickedQuantity = pickedQuantity;
    }

    public BigDecimal getPickedQuantity() 
    {
        return pickedQuantity;
    }
    public void setReturnQuantity(BigDecimal returnQuantity) 
    {
        this.returnQuantity = returnQuantity;
    }

    public BigDecimal getReturnQuantity() 
    {
        return returnQuantity;
    }
    public void setUnitPrice(BigDecimal unitPrice) 
    {
        this.unitPrice = unitPrice;
    }

    public BigDecimal getUnitPrice() 
    {
        return unitPrice;
    }
    public void setTotalPrice(BigDecimal totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() 
    {
        return totalPrice;
    }
    public void setBatchCode(String batchCode) 
    {
        this.batchCode = batchCode;
    }

    public String getBatchCode() 
    {
        return batchCode;
    }
    public void setWarehouseLocation(String warehouseLocation) 
    {
        this.warehouseLocation = warehouseLocation;
    }

    public String getWarehouseLocation() 
    {
        return warehouseLocation;
    }
    public void setReturnTime(Date returnTime) 
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime() 
    {
        return returnTime;
    }
    public void setReturnReason(String returnReason) 
    {
        this.returnReason = returnReason;
    }

    public String getReturnReason() 
    {
        return returnReason;
    }
    public void setQualityStatus(String qualityStatus) 
    {
        this.qualityStatus = qualityStatus;
    }

    public String getQualityStatus() 
    {
        return qualityStatus;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("detailId", getDetailId())
            .append("returnId", getReturnId())
            .append("pickingDetailId", getPickingDetailId())
            .append("materialId", getMaterialId())
            .append("materialCode", getMaterialCode())
            .append("materialName", getMaterialName())
            .append("specification", getSpecification())
            .append("unit", getUnit())
            .append("pickedQuantity", getPickedQuantity())
            .append("returnQuantity", getReturnQuantity())
            .append("unitPrice", getUnitPrice())
            .append("totalPrice", getTotalPrice())
            .append("batchCode", getBatchCode())
            .append("warehouseLocation", getWarehouseLocation())
            .append("returnTime", getReturnTime())
            .append("returnReason", getReturnReason())
            .append("qualityStatus", getQualityStatus())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}